/**
 * 解决el-tree全选后, 新增的节点默认有选中效果的bug
 * @param dataSource 数据源
 * @param selected 已经选中
 * @param children 数据children字段
 * @param field 选中数据字段
 * @returns {*}
 */
export function handleAllChecked(dataSource, selected, children, field)
{
    dataSource.map(item =>
    {
        let index = selected.indexOf(item[field]);
        if (index !== -1 && item[children] && item[children].length > 0)
        {
            // 有值
            let codes = item[children].map(it => it[field]);
            for (let i = 0; i < codes.length; i++)
            {
                if (selected.indexOf(codes[i]) !== -1)
                {
                    // 没找到, 删除根节点
                    selected.splice(index, 1);
                    break;
                }
            }
            return handleAllChecked(item[children], selected);
        }
    });
    return selected;
}
